import http from './http'

/**
 * 获取指定用户的所有运动记录
 * @param {number} userId 用户ID
 * @returns {Promise<Array>} 运动记录列表
 */
export function getUserExerciseRecords(userId) {
  return http.get(`/api/admin/exercise-records/user/${userId}`)
}

/**
 * 分页获取指定用户的运动记录
 * @param {number} userId 用户ID
 * @param {Object} params 分页参数
 * @returns {Promise<Object>} 分页结果
 */
export function getUserExerciseRecordsPaged(userId, params) {
  return http.get(`/api/admin/exercise-records/user/${userId}/paged`, { params })
}

/**
 * 按日期范围获取指定用户的运动记录
 * @param {number} userId 用户ID
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {Promise<Array>} 运动记录列表
 */
export function getUserExerciseRecordsByDateRange(userId, startDate, endDate) {
  return http.get(`/api/admin/exercise-records/user/${userId}/range`, {
    params: {
      startDate,
      endDate
    }
  })
}

/**
 * 获取指定用户的健身统计数据
 * @param {number} userId 用户ID
 * @returns {Promise<Object>} 统计数据
 */
export function getUserExerciseStats(userId) {
  return http.get(`/api/admin/exercise-records/user/${userId}/stats`)
}

/**
 * 更新用户的运动记录
 * @param {number} userId 用户ID
 * @param {number} recordId 记录ID
 * @param {Object} data 记录数据
 * @returns {Promise<Object>} 更新后的记录
 */
export function updateUserExerciseRecord(userId, recordId, data) {
  return http.put(`/api/admin/exercise-records/user/${userId}/${recordId}`, data)
}

/**
 * 删除用户的运动记录
 * @param {number} userId 用户ID
 * @param {number} recordId 记录ID
 * @returns {Promise<Object>} 删除结果
 */
export function deleteUserExerciseRecord(userId, recordId) {
  return http.delete(`/api/admin/exercise-records/user/${userId}/${recordId}`)
}

/**
 * 获取指定用户的所有健康数据
 * @param {number} userId 用户ID
 * @returns {Promise<Array>} 健康数据列表
 */
export function getUserHealthData(userId) {
  return http.get(`/api/admin/health-data/user/${userId}`)
}

/**
 * 获取指定用户的健康数据详情
 * @param {number} userId 用户ID
 * @param {number} dataId 健康数据ID
 * @returns {Promise<Object>} 健康数据详情
 */
export function getUserHealthDataById(userId, dataId) {
  return http.get(`/api/admin/health-data/user/${userId}/${dataId}`)
}

/**
 * 更新用户的健康数据
 * @param {number} userId 用户ID
 * @param {number} dataId 健康数据ID
 * @param {Object} data 健康数据
 * @returns {Promise<Object>} 更新后的健康数据
 */
export function updateUserHealthData(userId, dataId, data) {
  return http.put(`/api/admin/health-data/user/${userId}/${dataId}`, data)
}

/**
 * 删除用户的健康数据
 * @param {number} userId 用户ID
 * @param {number} dataId 健康数据ID
 * @returns {Promise<Object>} 删除结果
 */
export function deleteUserHealthData(userId, dataId) {
  return http.delete(`/api/admin/health-data/user/${userId}/${dataId}`)
}

/**
 * 获取指定用户的所有健身目标
 * @param {number} userId 用户ID
 * @returns {Promise<Array>} 健身目标列表
 */
export function getUserFitnessGoals(userId) {
  return http.get(`/api/admin/fitness-goals/user/${userId}`)
}

/**
 * 根据状态获取指定用户的健身目标
 * @param {number} userId 用户ID
 * @param {string} status 目标状态
 * @returns {Promise<Array>} 健身目标列表
 */
export function getUserFitnessGoalsByStatus(userId, status) {
  return http.get(`/api/admin/fitness-goals/user/${userId}/status/${status}`)
}

/**
 * 获取指定用户的健身目标详情
 * @param {number} userId 用户ID
 * @param {number} goalId 目标ID
 * @returns {Promise<Object>} 健身目标详情
 */
export function getUserFitnessGoalById(userId, goalId) {
  return http.get(`/api/admin/fitness-goals/user/${userId}/${goalId}`)
}

/**
 * 更新用户的健身目标
 * @param {number} userId 用户ID
 * @param {number} goalId 目标ID
 * @param {Object} data 目标数据
 * @returns {Promise<Object>} 更新后的健身目标
 */
export function updateUserFitnessGoal(userId, goalId, data) {
  return http.put(`/api/admin/fitness-goals/user/${userId}/${goalId}`, data)
}

/**
 * 更新用户健身目标的进度
 * @param {number} userId 用户ID
 * @param {number} goalId 目标ID
 * @param {number} progress 进度值(0-100)
 * @returns {Promise<Object>} 更新后的健身目标
 */
export function updateUserGoalProgress(userId, goalId, progress) {
  return http.put(`/api/admin/fitness-goals/user/${userId}/${goalId}/progress/${progress}`)
}

/**
 * 删除用户的健身目标
 * @param {number} userId 用户ID
 * @param {number} goalId 目标ID
 * @returns {Promise<Object>} 删除结果
 */
export function deleteUserFitnessGoal(userId, goalId) {
  return http.delete(`/api/admin/fitness-goals/user/${userId}/${goalId}`)
} 